package com.devilvan.betrice.sensitive.vo;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
* @author Evad.Wu
* @Description 敏感操作信息表 值对象
* @date 2023-08-14
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "敏感操作信息表 值对象")
public class SysSensitiveLogVo {
    @Schema(description = "操作人ID")
    @JSONField(alternateNames = {"operatorId"})
    private Long operatorId;
    @Schema(description = "操作人姓名")
    @JSONField(alternateNames = {"operatorName"})
    private String operatorName;
    @Schema(description = "URL")
    @JSONField(alternateNames = {"url"})
    private String url;
    @Schema(description = "被操作用户ID")
    @JSONField(alternateNames = {"beOperatedId"})
    private Long beOperatedId;
    @Schema(description = "被操作用户姓名")
    @JSONField(alternateNames = {"beOperatedName"})
    private String beOperatedName;
    @Schema(description = "IP地址")
    @JSONField(alternateNames = {"ipAddress"})
    private String ipAddress;
    @Schema(description = "操作地点")
    @JSONField(alternateNames = {"location"})
    private String location;
    @Schema(description = "操作时间")
    @JSONField(alternateNames = {"operateTime"})
    private Date operateTime;
    @Schema(description = "浏览器")
    @JSONField(alternateNames = {"browser"})
    private String browser;
    @Schema(description = "操作系统")
    @JSONField(alternateNames = {"os"})
    private String os;
    @Schema(description = "操作模块（见OPERATE_MODULE）")
    @JSONField(alternateNames = {"module"})
    private String module;
    @Schema(description = "操作子模块（见OPERATE_MODULE）")
    @JSONField(alternateNames = {"subModule"})
    private String subModule;
    @Schema(description = "操作类型（见OPERATE_TYPE）")
    @JSONField(alternateNames = {"type"})
    private String type;
    @Schema(description = "操作结果")
    @JSONField(alternateNames = {"result"})
    private String result;
    @Schema(description = "操作前的JSON，敏感字段要加密")
    @JSONField(alternateNames = {"contextOld"})
    private String contextOld;
    @Schema(description = "操作后的JSON，敏感字段要加密")
    @JSONField(alternateNames = {"context"})
    private String context;
    @Schema(description = "操作标识（字段、单号等）")
    @JSONField(alternateNames = {"sign"})
    private String sign;
    @Schema(description = "备注")
    @JSONField(alternateNames = {"remark"})
    private String remark;
}
